﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using com.clinica.business.BE.actplansalud;
using com.clinica.business.BE.comun;
using LiclUtil;
using LiclActPlanSalud.Views;
using System.Text;

namespace wesiGestClinica.actplansalud
{
    public partial class FormsConPlanSalud : Shared.SMGPaseBase, ILiclBandejaPlanSalud
    {
        private LiclBandejaPlanSaludPresenter oPresenter = new LiclBandejaPlanSaludPresenter();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack)
            {
                oPresenter.View = this;
                string Num = string.Empty;
                this.Master.TituloModulo = "Consulta de Planes de Salud";
                IniciarControles();
                EstablecerModos(0);
            }
            Master.OcultarMensaje();
            oPresenter.View = this;
        }
        protected override void DefineHandlers()
        {
            UCBarra1.img_Volver.Visible = true;
            UCBarra1.img_Volver.Click += new ImageClickEventHandler(img_Volver_Click);
            img_BuscarCiaSeguros.Click += new ImageClickEventHandler(img_BuscarCiaSeguros_Click);
            img_BuscarCiaSeguros.Attributes.Add("onClick", "abrirPopupAgregarCiaSeguros();");
            img_BuscarEmpresa.Click += new ImageClickEventHandler(img_BuscarEmpresa_Click);
            img_BuscarEmpresa.Attributes.Add("onClick", "abrirPopupAgregarEmpresa();");
            Btn_Consultar.Click += new EventHandler(Btn_Consultar_Click);
            dg_PlanSaludDetalle.RowCommand += new GridViewCommandEventHandler(dg_PlanSaludDetalle_RowCommand);
        }


        #region Evento
        void img_BuscarEmpresa_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                string[] arr = (string[])Session["arrConEmp"];
                txt_CodEmpresa.Text = arr[0];
                txt_Empresa.Text = arr[1];
                txt_CodCiaSeguros.ForeColor = System.Drawing.Color.White;
                txt_Empresa.ReadOnly = true;
            }
            catch (Exception)
            {

            }

        }

        void img_BuscarCiaSeguros_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                string[] arr = (string[])Session["arrConCiaAse"];
                txt_CodCiaSeguros.Text = arr[0];
                txt_CiaSeguros.Text = arr[1];
                txt_CodCiaSeguros.ForeColor = System.Drawing.Color.White;
                txt_CiaSeguros.ReadOnly = true;
            }
            catch (Exception)
            {

            }
        }

        void img_Volver_Click(object sender, ImageClickEventArgs e)
        {

        }

        void dg_PlanSaludDetalle_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Ver")
            {
                string strUrl = string.Empty;
                string strScript = string.Empty;
                GridViewRow fila = (GridViewRow)((ImageButton)e.CommandSource).NamingContainer;
                dg_PlanSaludDetalle.SelectedIndex = fila.RowIndex;
                string[] arr = e.CommandArgument.ToString().Split(new char[] { '|' });
                strUrl = "FormsDatPlanSalud.aspx?action=1&TipoSol=&Num=" + arr[0];
                strScript = "window.location = '" + strUrl + "';";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "RedirectTo", strScript, true);

            }
        }

        void Btn_Consultar_Click(object sender, EventArgs e)
        {
            if (ValidarBusqueda())
            {
                PlanSaludBE oPlan = new PlanSaludBE();
                oPlan.Descripcion = txt_Descripcion.Text.Trim();
                oPlan.CodigoEmpresa = int.Parse(txt_CodEmpresa.Text);
                oPlan.CodigoAseguradora = int.Parse(txt_CodCiaSeguros.Text);
                oPresenter.onObtener_PlanSalud_Consulta(oPlan, DateTime.Parse(UCFecDesde.Texto.Trim()), DateTime.Parse(UCFecHasta.Texto.Trim()));
                dg_PlanSaludDetalle.Visible = true;
            }
            else
                dg_PlanSaludDetalle.Visible = false;
        }
        #endregion
        #region Metodos
        private void IniciarControles()
        {
            DateTime fechaHasta = new DateTime();
            DateTime fechaDesde = new DateTime();
            fechaDesde = DateTime.Now.AddDays(-7);
            fechaHasta = DateTime.Today.ToUniversalTime();
            UCFecDesde.Texto = fechaDesde.ToString("dd/MM/yyyy");
            UCFecHasta.Texto = fechaHasta.ToString("dd/MM/yyyy");
            txt_CodEmpresa.Text = "0";
            txt_CodCiaSeguros.Text = "0";
           // txt_CiaSeguros.ReadOnly = true;
           // txt_Empresa.ReadOnly = true;

            List<PlanSaludBE> lst = new List<PlanSaludBE>();
            lst.Add(new PlanSaludBE());
            dg_PlanSaludDetalle.DataSource = lst;
            dg_PlanSaludDetalle.DataBind();
        }
        private void EstablecerModos(int modo)
        {
            switch (modo)
            {
                case 0:
                    break;
                case 1:
                    break;
            }
        }
        public bool HabilitarBotonesGrilla(string tipoLiq, string Estado, string Accion)
        {
            bool val = true;
            #region habilitar
            switch (Accion)
            {
                case "1": // Editar
                    break;
                case "2": // Anular
                    break;
                case "3": // Ver
                    break;
                default:
                    break;
            }
            #endregion
            return val;
        }
        private bool ValidarBusqueda()
        {
            bool bolVal = true;
            StringBuilder strErrores = new StringBuilder();

            //if (txt_Numero.Text.Trim() != string.Empty)
            //{
            //    try
            //    {
            //        int.Parse(txt_Numero.Text.Trim());
            //    }
            //    catch (Exception ex)
            //    {
            //        bolVal = false;
            //        Master.MostrarMensaje(" Solo ingrese caracteres numericos en Número de documento o en Valor ingresado es muy grande", TipoMensaje.Error);
            //    }
            //}
            if (txt_Descripcion.Text.Trim() != string.Empty)
            {
                if (!ValidarCarateres(txt_Descripcion.Text.Trim(), 0))
            {
                bolVal = false;
                strErrores.Append(" Caracteres invalidos no Permitidos,");
            }

            }
            if (!(DateTime.Parse(UCFecDesde.TextoFecha.Text).Year >= 1900 && DateTime.Parse(UCFecDesde.TextoFecha.Text).Year <= DateTime.Now.Year))
            {
                bolVal = false;
                strErrores.Append(" La Fecha desde se encuentra fuera de Rango,");
            }
            if (DateTime.Compare(DateTime.Parse(UCFecHasta.Texto.Trim()), DateTime.Now) > 0)
            {
                bolVal = false;
                strErrores.Append(" La Fecha hasta se encuentra fuera de Rango,");
            }
            try
            {
                DateTime.Parse(UCFecDesde.Texto.Trim());
                DateTime.Parse(UCFecHasta.Texto.Trim());
            }
            catch (Exception ex)
            {
                bolVal = false;
                strErrores.Append(ex.Message.Trim());
            }
            try
            {
                int.Parse(txt_CodCiaSeguros.Text);
            }
            catch (Exception)
            {
                bolVal = false;
                strErrores.Append(" Debe seleccionar Cia. de Seguros");
            }
            try
            {
                int.Parse(txt_CodEmpresa.Text);
            }
            catch (Exception)
            {
                bolVal = false;
                strErrores.Append(" Debe seleccionar  empresa");
            }
            if (bolVal)
            {
                if (DateTime.Compare(DateTime.Parse(UCFecDesde.Texto.Trim()), DateTime.Parse(UCFecHasta.Texto.Trim())) > 0)
                {
                    bolVal = false;
                    strErrores.Append(" La fecha hasta no puede ser mayor que la fecha desde");
                }
            }
            if (!bolVal)
            {
                //Master.ColocarMensaje(TipoMensaje.Error, strErrores.ToString(), strErrores.ToString());
                Master.MostrarMensaje(strErrores.ToString(), TipoMensaje.Error);
            }
            return bolVal;
        }
        #endregion


        public bool ValidarCarateres(string texto, int tipo)
        {
            bool res = true;
            string validar = string.Empty;
            string cadena = string.Empty;
            string carEspecial = string.Empty;
            if (texto.Trim() != string.Empty)
            {
                switch (tipo)
                {
                    case 0://Alfanumericos no caracteres especiales
                        cadena = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ-0123456789. ";
                        break;
                    case 1://Solo numeros
                        cadena = "-0123456789";
                        break;
                    case 2://Solo Letras
                        cadena = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ ";
                        break;
                    case 3://Solo numeros y decimales
                        cadena = "-0123456789.";
                        break;
                    default:
                        break;
                }
                #region Validacion
                for (int i = 0; i < texto.Length; i++)
                {
                    validar = texto.Substring(i, 1);
                    if (cadena.IndexOf(validar.Trim()) == -1)
                    {
                        res = false;
                        break;
                    }
                }
                #endregion
            }
            else
                res = true;

            return res;
        }



        #region ILiclBandejaPlanSalud Members

        public void ObtenerTabla(List<ParametrosBE> lst)
        {

        }

        public void ObtenerSolicitudListaPlanSalud(List<PlanSaludBE> lst)
        {
            if (lst.Count > 0)
            {
                dg_PlanSaludDetalle.DataSource = lst;
                dg_PlanSaludDetalle.DataBind();
                lbl_Cantidad.Text = lst.Count.ToString() + " Registros(s) encontrados";
            }
            else
            {
                lst.Add(new PlanSaludBE());
                dg_PlanSaludDetalle.DataSource = lst;
                dg_PlanSaludDetalle.DataBind();
                Master.MostrarMensaje("No Existen  Planes de salud para el criterio de busqueda", TipoMensaje.Advertencia);
                lbl_Cantidad.Text = "0 Registros(s) encontrados";
            }
        }

        public void MostrarMensajeError(string Mensaje)
        {
            Master.MostrarMensaje(Mensaje.Trim(), TipoMensaje.Error);
        }

        public void CargarInicio(int accion)
        {

        }

        #endregion
    }
}
